分类
联系方式
  1. 新浪微博
  2. E-mail

Flutter tonic DartMessageHandler

介绍

tonic 是一个 C++ 工具库,对 DartVM API 进行了一些简化和封装。DartMessageHandler 是 tonic 提供的对 MessageHander 的简化工具类。

DartMessageHandler 本身并涉及 Isolate 内部 MessageHandler 的创建。DartMessageHandler 的主要工作是向 Isolate 的 MessageHandler 注入消息处理回调。

TaskDispatcher

DartMessageHandler 有一个核心成员,task_dispatcher_,是一个高阶函数,其声明为:

using TaskDispatcher = std::function<void(std::function<void(void)>)>;

TaskDispatcher task_dispatcher_;

该函数通过 DartMessageHandler::Initialize 由外界注入。这个函数最终会注入到 MessageHandler 上,在后文会梳理。

先看看 Flutter 中 DartMessageHandler 的使用场景:

  • tonic DartState 类中使用了 DartMessageHandler
  • DartState 在 Flutter 框架中被广泛使用